查看原文
其他

HBase二级索引设计思想

大数据私房菜 大数据私房菜 2022-07-01
1

为什么需要创建二级索引


       HBase对于多条件组合查询这种应用场景是非常不占优势的,甚至可以说就是其短板,一般情况下,我们有两种方式查询Hbase中的数据

  •        通过Rowkey查询数据,Rowkey里面会组合固定查询条件,但是需要把多组合查询的字段都拼接在Rowkey中,这是不可能的。

  •        通过Scan全部扫描符合条件的数据,这样的效率是非常低的


所以这时候我们就需要用建立二级索引的方法来解决这个问题


2

二级索引原理



如上图所示,Hbase表中的字段为Rowkey,age,sex,username,phone,目前的需求是需要按照age,sex,username,phone随机组合查询符合条件的数据。

这时候我们就需要用ES来建立二级索引了,原始数据存在HBase中,索引存在ES中,如下图所示:


原理流程


  1. 将原始数据存入HBase

  2. 将需要查询的条件字段及Rowkey存入ES

  3. 客户端发送请求会根据组合查询条件去ES中查找到对应的RowKey

  4. ES返回RowKey给客户端

  5. 客户端根据ES返回的结果(RowKey)查询HBase数据

  6. HBase返回符合条件的数据给客户端


2020大数据面试题真题总结(附答案)

数据建模知多少?

如何写好一篇数据部门规范文档

如何优化整个数仓的执行时长(比如7点所有任务跑完,如何优化到5点)

从0-1建设数仓遇到什么问题?怎么解决的?

多值维度及交叉维度最佳解决方案

深入探究order by,sort by,distribute by,cluster by

Hive调优,数据工程师成神之路

数据质量那点事

简述元数据管理

你真的了解全量表,增量表及拉链表吗?

缓慢变化维(SCD)常见解决方案

全方位解读星型模型,雪花模型及星座模型

Sqoop or Datax

left join(on&where)

ID-Mapping

你们公司还在用SparkOnYan吗?

大厂高频面试题-连续登录问题

朋友面试数据研发岗遇到的面试题

数据仓库分层架构

简单聊一聊大数据学习之路

朋友面试数据专家岗遇到的面试题

HADOOP快速入门

数仓工程师的利器-HIVE详解


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存